package org.zhss.demo.redis.expire;

import redis.clients.jedis.Jedis;

import java.util.Random;
import java.util.UUID;

public class SessionDemo {
  private Jedis jedis = new Jedis("192.168.150.201");

  public String login(String userName, String password) {
    System.out.println("基于用户名和密码登录：" + userName + "，" + password);
    Random random = new Random();
    long userId = random.nextInt() * 100;
    // 登陆成功以后生成一块令牌
    String token = UUID.randomUUID().toString().replace("-", "");
    // 基于令牌和用户id去初始化用户Session
    jedis.set("session::" + token, String.valueOf(userId));
    jedis.expire("session::" + token, 24 * 60 * 60);
    return token;
  }

  public void initSession(long userId, String token) {
    jedis.set("session::" + token, String.valueOf(userId));
    jedis.expire("session::" + token, 24 * 60 * 60);
  }

  public boolean isSessionValid(String token) {
    // 校验token是否为空
    if (token == null || "".equals(token)) {
      return false;
    }
    // 这里拿到的session可能就是一个json字符串
    // 我们这里简化一下，就放一个用户user_id作为这里的value
    String session = jedis.get("session::" + token);
    if (session == null || "".equals(session) || "null".equals(session)) {
      return false;
    }

    // 如果token不为空，而且获取到的session不为空，而且session没过期
    return true;
  }

  public static void main(String[] args) {
    SessionDemo demo = new SessionDemo();
    demo.login("", "");
  }
}

